package app.util;

import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import app.models.to.RelatorioConsulta;
import br.com.caelum.vraptor.jasperreports.Report;

public class PlanningReportConsulta implements Report {

    private final List<RelatorioConsulta> data;
    private Map<String, Object> parameters;

    /**
     * Constrói um novo relatório com o dados recebidos.
     * 
     * @author Douglas Fernandes
     * @since 22/05/2014
     * 
     * @param data
     *            Dados para composição do relatório.
     */
    public PlanningReportConsulta(List<RelatorioConsulta> data) {
        this.data = data;
        this.parameters = new HashMap<String, Object>();
    }

    @Override
    public String getTemplate() {
        return "relatorio_consultas.jasper";
    }

    @Override
    public Map<String, Object> getParameters() {
        return parameters;
    }

    @Override
    public Collection<RelatorioConsulta> getData() {
        return data;
    }

    @Override
    public String getFileName() {
        return "report" + System.currentTimeMillis();
    }

    @Override
    public Report addParameter(String key, Object value) {
        this.parameters.put(key, value);
        return this;
    }

    @Override
    public boolean isCacheable() {
        return true;
    }
}